#include <iostream>
#include <regex>
using namespace std;

int main(){
  // 0~255模式：\d表示0-9，{N}表示位数，|表示“或”的关系。
  // 0-9的1位数、或1开头的1至2位数、或2开头中间0至4末位任意的三位数、或25开头末尾0至5的三位数。
  #define B R"((\d{1}|1\d{1,2}|2[0-4]\d{1}|25[0-5]))"
  regex re = regex("^" B "\\." B "\\." B "\\." B "$"); // 用了字符串合并特性
  smatch m; // ^匹配开头，$匹配结尾，\\转义为一个\，然后\.匹配.本身而非任意字符。
  for(string s; getline(cin, s);){
    if(regex_match(s, m, re)){ // 匹配IP地址的模式
      cout << s << ": " << (stol(m[4]) << 24 | stol(m[3]) << 16 | stol(m[2]) << 8 | stol(m[1])) << '\n';
    }else{
      cout << s << ": invalid\n";
    }
  }
}